<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒子模型</title>
    <style>
      /*  盒子模型(Box Model) 它包括：边距margin，边框border，填充padding，和实际内容。
            Margin(外边距) - 清除边框外的区域，外边距是透明的。
            Border(边框) - 围绕在内边距和内容外的边框。
            Padding(内边距) - 清除内容周围的区域，内边距是透明的。
            Content(内容) - 盒子的内容，显示文本和图像。
        为了正确设置元素在所有浏览器中的宽度和高度，你需要知道的盒模型是如何工作的。
    元素的宽度和高度:
        重要: 当您指定一个CSS元素的宽度和高度属性时，你只是设置内容区域的宽度和高度。要知道，完全大小的元素，你还必须添加填充，边框和边距。

        总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距
        总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距

    浏览器的兼容性问题
        一旦为页面设置了恰当的 DTD，大多数浏览器都会按照上面的图示来呈现内容。
        然而 IE 5 和 6 的呈现却是不正确的。根据 W3C 的规范，元素内容占据的空间是由 width 属性设置的，而内容周围的 padding 和 border 值是另外计算的。
        不幸的是，IE5.X 和 6 在怪异模式中使用自己的非标准模型。这些浏览器的 width 属性不是内容的宽度，而是内容、内边距和边框的宽度的总和。
        虽然有方法解决这个问题。但是目前最好的解决方案是回避这个问题。
        也就是，不要给元素添加具有指定宽度的内边距，而是尝试将内边距或外边距添加到元素的父元素和子元素。
        
        IE8 及更早IE版本不支持设置填充的宽度和边框的宽度属性。
        解决IE8及更早版本不兼容问题可以在HTML页面声明 <!DOCTYPE html>即可。
      */
      div {
          background-color: lightgrey;
          width: 300px;
          border: 25px solid green;
          padding: 25px;
          margin: 25px;
      }
      div.ex
      {
          width:220px;
          padding:10px;
          border:5px solid gray;
          margin:0px;
      }

    </style>
</head>
<body>
<h2>盒子模型演示</h2>
<p>CSS盒模型本质上是一个盒子，封装周围的HTML元素，它包括：边距，边框，填充，和实际内容。</p>
<div>这里是盒子内的实际内容。有 25px 内间距，25px 外间距、25px 绿色边框。</div>

<img src="250x250px.gif" width="250" height="250" />
<div class="ex">上面的图片是250 px宽。
    这个元素的总宽度也是250 px。</div>
</body>
</html>